Saeid Safaei Loader Logo Saeid Safaei Loader Animated
لطفا شکیبا باشید
0

سعیدصفایی سعیدصفایی

سعید صفایی
آشنایی با مفهوم Function Overriding

Function Overriding

بازنویسی تابع به معنای تعریف مجدد تابع در یک کلاس مشتق‌شده با همان نام و امضای تابع در کلاس پایه است. این ویژگی در برنامه‌نویسی شی‌گرا برای تغییر رفتار توابع به کار می‌رود.

Function Overriding یکی از ویژگی‌های مهم در برنامه‌نویسی شی‌گرا است که به شما این امکان را می‌دهد که یک متد در کلاس فرزند (Subclass) با متدی که در کلاس والد (Superclass) تعریف شده است، بازنویسی (Override) کنید. با استفاده از Function Overriding، می‌توان رفتار یک متد را در کلاس فرزند تغییر داد. این ویژگی باعث می‌شود که متدهای مشابه در کلاس‌های مختلف بتوانند رفتار خاص خود را داشته باشند، حتی اگر نام و پارامترهای مشابهی داشته باشند.

در Function Overriding، متد در کلاس فرزند باید همان امضا (Signature) را داشته باشد که در کلاس والد تعریف شده است. این بدان معناست که نام متد، پارامترهای آن و نوع داده بازگشتی باید مشابه باشند. در صورتی که این شرایط رعایت نشوند، یک خطای کامپایل رخ می‌دهد.

به‌عنوان مثال، در زبان Java، هنگامی که یک متد در کلاس فرزند بازنویسی می‌شود، می‌توانیم رفتار آن را مطابق نیازهای کلاس فرزند تغییر دهیم:

 class Animal {
public void sound() {
System.out.println("Animal makes a sound");
} } class Dog extends Animal {
@Override
public void sound() {
System.out.println("Dog barks");
} } public class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal();
Animal myDog = new Dog();


myAnimal.sound(); // خروجی: Animal makes a sound
myDog.sound();
// خروجی: Dog barks
} }

در این مثال، کلاس Dog متد sound را از کلاس Animal بازنویسی (Override) کرده است. در نتیجه، زمانی که متد sound برای شی myDog فراخوانی می‌شود، پیامی که مربوط به سگ است چاپ می‌شود.

ویژگی Function Overriding معمولاً در زمانی که می‌خواهیم رفتار یک متد را در کلاس‌های فرزند با توجه به ویژگی‌ها یا نیازهای خاص تغییر دهیم، استفاده می‌شود. به‌عنوان مثال، اگر یک برنامه برای مدیریت حیوانات داشته باشیم، ممکن است بخواهیم که همه حیوانات صدای خاص خود را تولید کنند، ولی هر گونه خاصی از حیوانات (مانند سگ‌ها، گربه‌ها، پرندگان و ...) صدای مخصوص به خود را داشته باشند.

در زبان C++ نیز Function Overriding به‌طور مشابه پیاده‌سازی می‌شود. در C++ برای بازنویسی یک متد در کلاس فرزند، معمولاً از کلمه‌کلیدی virtual در کلاس والد و override در کلاس فرزند استفاده می‌کنیم:

 #include <iostream> using namespace std;  class Animal { public:
virtual void sound() {
cout << "Animal makes a sound" << endl;
} }; class Dog : public Animal { public:
void sound() override {
cout << "Dog barks" << endl;
} }; int main() {
Animal* myAnimal = new Animal();
Animal* myDog = new Dog();

myAnimal->sound(); // خروجی: Animal makes a sound
myDog->sound();
// خروجی: Dog barks

delete myAnimal;
delete myDog;

return 0; }

در این مثال، در C++ نیز مشابه به Java، کلمه‌کلیدی virtual برای تعیین اینکه متد در کلاس والد می‌تواند بازنویسی شود استفاده شده است. همچنین در کلاس فرزند، کلمه‌کلیدی override استفاده می‌شود تا کامپایلر بداند که این متد قرار است متد والد را بازنویسی کند.

یکی از مزایای استفاده از Function Overriding این است که به شما این امکان را می‌دهد که از ویژگی polymorphism (چندریختی) در برنامه‌نویسی شی‌گرا استفاده کنید. این ویژگی به شما این امکان را می‌دهد که از متدهای یکسان برای انواع مختلف اشیاء استفاده کنید، در حالی که هر شیء می‌تواند پیاده‌سازی خاص خود را از آن متد داشته باشد.

به‌طور کلی، Function Overriding ابزاری قدرتمند در برنامه‌نویسی شی‌گرا است که به شما این امکان را می‌دهد که رفتار متدها را در کلاس‌های فرزند تغییر دهید. این ویژگی در طراحی کد و استفاده از مفهوم چندریختی (Polymorphism) بسیار مفید است. برای یادگیری مفاهیم مشابه و مطالعه مقالات بیشتر، می‌توانید از سایت saeidsafaei.ir و مقالات محمد سعید صفایی استفاده کنید.

اسلاید آموزشی

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)

بخش پنجم برنامه نویسی مقدماتی (توابع-قسمت اول)
مبانی کامپیوتر و برنامه سازی

در این مبحث، به بررسی انواع توابع، شامل توابع کتابخانه‌ای و توابع ساخت کاربر پرداخته می‌شود و نحوه اعلان، تعریف و استفاده از آن‌ها مورد بحث قرار می‌گیرد. همچنین، به مفاهیم متغیرهای محلی و توابع محلی، تفاوت آرگومان و پارامتر و نحوه عملکرد تابع اصلی پرداخته خواهد شد. هدف این جلسه، آشنایی با نحوه استفاده از توابع در برنامه‌نویسی و درک دقیق ارتباطات میان متغیرها و توابع است.

مقالات آموزشی برای آشنایی با اصطلاحات دنیای کامپیوتر

پروتکلی در لایه 2 برای جلوگیری از حلقه‌های شبکه‌ای و مدیریت مسیرهای انتقال داده‌ها.

یادگیری ماشین (ML) به روش‌های آماری گفته می‌شود که به ماشین‌ها این امکان را می‌دهد که از داده‌ها یاد بگیرند و پیش‌بینی‌های دقیقی انجام دهند.

امنیت بلاکچین به محافظت از داده‌ها در شبکه‌های بلاکچین از تهدیدات و حملات سایبری اطلاق می‌شود.

شبکه‌های هوشمند به سیستم‌های برق‌رسانی گفته می‌شود که از فناوری‌های دیجیتال برای نظارت و بهینه‌سازی مصرف انرژی استفاده می‌کنند.

محاسبات عصبی‌شکل به استفاده از سیستم‌هایی اطلاق می‌شود که از ساختارهای مشابه مغز انسان برای پردازش داده‌ها استفاده می‌کنند.

الگوریتم جستجو به فرآیند جستجو برای یافتن یک یا چند عنصر خاص در یک آرایه یا ساختار داده گفته می‌شود.

کامپیوتر شخصی است که برای استفاده فردی طراحی شده و شامل انواع مختلفی مانند لپ‌تاپ، دسکتاپ و گوشی‌های هوشمند است.

بینش‌های مبتنی بر هوش مصنوعی به استفاده از الگوریتم‌های هوش مصنوعی برای تجزیه و تحلیل داده‌ها و استخراج الگوهای کاربردی و پیش‌بینی آینده اشاره دارد.

لیست پیوندی دوطرفه یک نوع خاص از لیست پیوندی است که هر عنصر در آن به دو عنصر قبلی و بعدی خود اشاره دارد.

واحد پردازش گرافیکی است که برای انجام محاسبات پیچیده گرافیکی و پردازش داده‌های بصری به کار می‌رود.

شیوه‌ای برای سازمان‌دهی و ذخیره‌سازی داده‌ها به گونه‌ای که دسترسی به آن‌ها سریع‌تر و مؤثرتر باشد. انواع مختلفی از ساختار داده مانند آرایه‌ها، لیست‌های پیوندی و درخت‌ها وجود دارد که هر یک برای مسائل خاصی مناسب هستند.

کد عملیاتی است که دستورالعمل‌های پردازنده را مشخص می‌کند و عملیات مورد نظر را برای پردازش انجام می‌دهد.

دستگاه‌های پوشیدنی هوشمند به دستگاه‌هایی اطلاق می‌شود که به‌طور مداوم اطلاعات را از بدن فرد جمع‌آوری و تجزیه و تحلیل می‌کنند.

پهنای باند به میزان داده‌هایی اطلاق می‌شود که در یک واحد زمانی بین سیستم‌ها یا اجزای مختلف سیستم منتقل می‌شود.

حافظه موقت کامپیوتر است که به طور موقت داده‌ها و دستورات را ذخیره می‌کند و به پردازنده اجازه می‌دهد تا به سرعت به این اطلاعات دسترسی پیدا کند.

سیستم‌های محاسباتی شناختی به استفاده از فناوری‌ها برای شبیه‌سازی فرایندهای فکری انسان‌ها و انجام تحلیل‌های پیچیده اطلاق می‌شود.

شبکه‌ای که در محدوده‌ای جغرافیایی محدود مانند یک ساختمان یا اداره قرار دارد و به اشتراک‌گذاری منابع بین دستگاه‌ها می‌پردازد.

تکرار به فرآیند اجرای دوباره یک دستور یا مجموعه دستورات گفته می‌شود. این واژه بیشتر در کنار حلقه‌ها استفاده می‌شود.

حالت انتقال داده دو طرفه اما نوبتی که در آن تنها یکی از دستگاه‌ها در هر زمان می‌تواند داده‌ها را ارسال یا دریافت کند.

رابط مغز-کامپیوتر به سیستم‌هایی اطلاق می‌شود که به انسان‌ها امکان می‌دهند تا از طریق ذهن خود با دستگاه‌ها ارتباط برقرار کنند.

فراخوانی به‌وسیله مرجع یعنی زمانی که آدرس حافظه متغیر به تابع ارسال می‌شود و در نتیجه تغییرات انجام‌شده در داخل تابع روی متغیر اصلی اثر می‌گذارد.

پردازش داده‌ها و ذخیره‌سازی اطلاعات در سرورهای دور از دسترس محلی، که کاربران از طریق اینترنت به این منابع دسترسی دارند.

کاوش داده‌ها به فرآیند استخراج الگوها و اطلاعات مفید از مجموعه‌های بزرگ داده اشاره دارد.

پورت‌هایی که برای انتقال ترافیک مربوط به چندین VLAN بین سوئیچ‌ها استفاده می‌شوند.

روش دسترسی که در آن دستگاه‌های شبکه به‌طور دوره‌ای از دستگاه مرکزی درخواست دسترسی به رسانه می‌کنند.

شبکه‌های رادیویی شناختی به سیستم‌هایی اطلاق می‌شود که قادر به شناسایی و استفاده از فرکانس‌های رادیویی بدون تداخل با سایر شبکه‌ها هستند.

داده‌ای که توسط یک لایه از لایه بالاتر دریافت می‌شود تا پردازش یا انتقال یابد.

اضافه بار یا اوورفلو زمانی رخ می‌دهد که سیستم محاسباتی نمی‌تواند عددی بزرگتر از ظرفیت ذخیره‌سازی خود را پردازش کند.

مدت زمانی که طول می‌کشد تا یک بسته از مبدأ به مقصد برسد. این تأخیر می‌تواند انواع مختلفی مانند تأخیر پردازش، تأخیر انتقال و تأخیر انتشار داشته باشد.

یونیکد سیستم کدگذاری است که از آن برای نمایش حروف و نمادهای مختلف زبان‌ها در یک سیستم استفاده می‌شود.

فناوری‌های حسی (Haptic) به فناوری‌هایی اطلاق می‌شود که به کاربران امکان می‌دهند تا از طریق احساسات لمسی و حرکتی تعامل کنند.

طراحی مولد به استفاده از الگوریتم‌های هوش مصنوعی برای ایجاد طرح‌ها و ساختارهای جدید از داده‌ها اطلاق می‌شود.

نگهداری پیش‌بینی در صنعت به استفاده از داده‌های تاریخچه‌ای و الگوریتم‌ها برای پیش‌بینی خرابی و نیاز به تعمیر در تجهیزات صنعتی اشاره دارد.

تبدیل عدد از مبنای ده به شانزده که در این فرایند از تقسیم مکرر عدد بر 16 و نگهداری باقی‌مانده‌ها استفاده می‌شود.

دستگاهی که برای متصل کردن چندین شبکه محلی LAN به یکدیگر استفاده می‌شود و در لایه داده‌لینک (Layer 2) عمل می‌کند.

بکشید مشاهده بستن پخش
Saeid Safaei Scroll Top
0%